/**
 * Ingenius-Group S.A.S
 *
 * Project: SAU
 * File: GuidelinesService.java
 * Date: 28/02/2011
 */

package com.ingenius.sau.client.service;

import java.util.List;

import com.extjs.gxt.ui.client.data.BasePagingLoadConfig;
import com.extjs.gxt.ui.client.data.PagingLoadResult;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
import com.ingenius.sau.shared.model.guidelines.Factor;
import com.ingenius.sau.shared.model.guidelines.Feature;
import com.ingenius.sau.shared.model.guidelines.Guideline;
import com.ingenius.sau.shared.model.guidelines.Indicator;
import com.ingenius.sau.shared.util.filter.Filter;

/**
 * Class <strong>GuidelinesService</strong>
 * 
 * @author Jesus David
 * @version 0.1
 */
@RemoteServiceRelativePath("guidelinesService")
public interface GuidelinesService extends RemoteService {

	public Boolean saveOrUpdateGuideline(Guideline guideline);

	public Boolean deleteGuideline(String id);

	public Guideline getGuideline(String id);

	public PagingLoadResult<Guideline> findGuidelines(List<Filter> filters,
			BasePagingLoadConfig config);

	public Boolean saveOrUpdateFactor(Factor factor);

	public Boolean deleteFactor(String id);

	public Factor getFactor(String id);

	public PagingLoadResult<Factor> findFactors(List<Filter> filters,
			BasePagingLoadConfig config);

	public Boolean saveOrUpdateFeature(Feature feature);

	public Boolean deleteFeature(String id);

	public Feature getFeature(String id);

	public PagingLoadResult<Feature> findFeatures(List<Filter> filters,
			BasePagingLoadConfig config);

	public Boolean saveOrUpdateIndicator(Indicator indicator);

	public Boolean deleteIndicator(String id);

	public Indicator getIndicator(String id);

	public PagingLoadResult<Indicator> findIndicators(List<Filter> filters,
			BasePagingLoadConfig config);

}
